package com.billard.utils;

import org.mindrot.jbcrypt.BCrypt;
import org.springframework.stereotype.Component;

/**
 * 独立的 BCrypt 工具类，无需 Spring Security
 */
@Component
public class BCryptUtil {

    /**
     * 使用的是 BCrypt 算法，它属于 密码哈希函数（Password Hashing Function），更准确地说，是一种 强加密哈希算法，专门用于安全地存储密码。
     * 它通过随机添加盐值（salt）来增加密码的复杂性，使得 mesmo 密码的哈希值也不同。
     * 加密密码
     */
    public String encryptPassword(String rawPassword) {
        return BCrypt.hashpw(rawPassword, BCrypt.gensalt());
    }

    /**
     * 验证密码
     */
    public boolean checkPassword(String rawPassword, String hashedPassword) {
        return BCrypt.checkpw(rawPassword, hashedPassword);
    }
}
